Language server protocol types for Kailua.
This crate closely mirrors the version 3.0 of the Language Server Protocol,
and provides both serde::Serialize
and serde::Deserialize
implementations for most types,
with the following deviations:
-
Enums are mapped to Rust modules.
-
Anonymous nested interfaces are given unique names from its field name. Since this results in many ambiguous types for client capabilities, client capabilities are put to a separate module
client_caps
. -
Some types like
number | string
are not yet properly implemented and fixed to a most probable type. -
ServerCapabilities.textDocumentSync
should be aTextDocumentSyncOptions
in 3.0, but this causes a bug invscode-languageclient<=3.2.0
, so it is reverted to a backward-compatibleTextDocumentSyncKind
.